<?php
/////////////////////////////////////////////////////////////////////////////
// 这个文件是 便民信息 项目的 后台信息管理 模块
// Copyright (c) 2015 – 2016 http://www.lijian.website
// 时间:2016年1月17日上午8:00:50
// 用户名:Lenovo
// 作    者:小天天天天
/////////////////////////////////////////////////////////////////////////////
namespace Admin\Controller;
use Think\Controller;
class InfoController extends Controller{
	public function index(){
		$infomodel=M("Info");
		$map=array();
		if (isset($_GET['is_top'])) $map['is_top']=$_GET['is_top']+0;
		if (isset($_GET['is_varify'])) $map['is_varify']=$_GET['is_varify']+0;
		if (isset($_GET['area_id'])&&!empty($_GET['area_id'])) $map['area_id']=$_GET['area_id']+0;
		if (isset($_GET['is_overtime'])){
			$is_overtime=$_GET['is_overtime']+0;
			if ($is_overtime){
				$map['info_overtime']=array("lt",time());
			}else {
				$map['info_overtime']=array("gt",time());
			}
		}
		if (isset($_GET['keyword'])&&!empty($_GET['keyword'])) $map['info_title']=array("like","%".$_GET['keyword']."%");
		//转义+实体化
		$map=deepspecialchars($map);

		//当前页数默认为第1页
		$p=isset($_GET['p'])?$_GET['p']:1;
		$pnum=15;
		//查询(老师说不建议用select * .....这种方式,我也是醉了d=====(￣▽￣*)b)
		$infos=$infomodel->join('tp_user ON tp_info.user_id = tp_user.user_id')
		->join("tp_category ON tp_info.cat_id= tp_category.cat_id")
		->join("tp_area ON tp_info.area_id= tp_area.id")
		->field("info_id,area_id,user_name,cat_name,area_name,info_title,info_content,info_createtime,info_overtime,
				is_varify,info_linkman,info_tel,info_wechat,info_qq,info_num,is_top,info_adds,
				info_price,info_img,info_miniimg,tp_info.sort_order,top_overtime")
		->where(empty($map)?"1":$map)
		->page($p,$pnum)
		->order("info_createtime desc")
		->select();
		
		foreach ($infos as  $key=>$info){
			$infos[$key]["is_overtime"]=$info['info_overtime']-time()>0?"no":"yes";
			$infos[$key]["top_overtime"]=$info['top_overtime']?date("Y-m-d H:i:s",$info['top_overtime']):"{$info['top_overtime']}";
			//将标题取前20个字防止长标题破坏样式
			$infos[$key]["info_title"]=substr($info['info_title'], 0,54);
			$infos[$key]["info_createtime"]=date("Y-m-d H:i:s",$info['info_createtime']);
			$infos[$key]["info_overtime"]=date("Y-m-d H:i:s",$info['info_overtime']);
			
			$infos[$key]["info_price"]=$info['info_price']?$info['info_price']:"面议";
			//$infos[$key]["is_varify"]=$info['is_varify']?"yes":"no";
			$img_arr=explode(",", $infos[$key]["info_img"]);
			$infos[$key]['img_num']=count($img_arr);
		}
		//如果携带查询参数,则显示查询符合查询参数的总条数,否则,显示数据表中信息的总条数
		$count=!empty($map)?$infomodel->where($map)->count():$infomodel->count();
		//实例话分页类出入参数
		
		if(isset($_GET['is_overtime'])) $map['is_overtime']=$_GET['is_overtime']+0;
		//防止用于数据库查询的元素作为分页元素,故unset掉
		unset($map['info_overtime']);
		unset($map['info_title']);
		if (isset($_GET['keyword'])&&!empty($_GET['keyword'])) $map['keyword']=$_GET['keyword'];
		
		$page=new \Think\Page($count, $pnum, $p,"",$map);
		$show=$page->show();
		$this->assign("pageinfo",$show);
		//查询说有地区数据
		$areamodel=M("Area");
		$areas=$areamodel->where("1")->select();
		$this->assign("areas",$areas);
		//展示查询到的信息数据
		$this->assign("infos",$infos);
		$this->display();
	}
	
	//置顶:点击置顶该条消息就会被置顶+审核
	public function dotop() {
		$info_id=$_POST['info_id']+0;
		$info_title=deepspecialchars($_POST['info_title']);
		$data['is_top']=1;
		//置顶:点击置顶该条消息就会西东被审核
		$data['is_varify']=1;
		if (isset($_POST['top_overtime'])&&$_POST['top_overtime']>0){
			$top_overtime=$_POST['top_overtime']+0;
		}else {
			$this->error("置顶天数为空或者不合法!");
		}
		$data['top_overtime']=time()+$top_overtime*24*3600;
		$infomodel=M("Info");
		if ($infomodel->where("info_id=".$info_id)->save($data)){
			echo "<script>alert('成功置顶!')</script>";
			$info=$infomodel->where("info_id=".$info_id)->find();
			$newsmodel=M("News");
			$newsdata[1]=$info['user_id'];
			$newsdata[2]="系统消息:信息置顶成功";
			$newsdata[3]="您发布的消息:<b>{$info_title}</b>,已经成功置顶<b>{$top_overtime}天</b>,请到首页查看,感谢您对我们的支持!";
			$newsdata[4]=time();
			sendnews($newsdata);
			$url=U("Info/index");
			Header("Location:$url");
		}else {
			$this->error("置顶失败!");
		}
	}
	
	//取消置顶
	public function cleartop() {
		$info_id=$_GET['info_id']+0;
		$data['is_top']=0;
		$data['top_overtime']=0;
		$infomodel=M("Info");
		if ($infomodel->where("info_id=".$info_id)->save($data)){
			echo "<script>alert('取消置顶成功!')</script>";
			$info=$infomodel->where("info_id=".$info_id)->find();
			//设置站内信的数据
			$newsdata[1]=$info['user_id'];
			$newsdata[2]="系统消息:信息被取消置顶!";
			$newsdata[3]="您发布的消息:<b>{$info['info_title']}</b>,由于过期或者置顶超时的原因,已经被取消置顶,感谢您对我们的支持!";
			$newsdata[4]=time();
			//发送站内信
			sendnews($newsdata);
			$url=U("Info/index");
			Header("Location:$url");
		}else {
			$this->error("置顶失败!");
		}
	}
	
	public function dovarify(){
		$data['info_id']=$_GET['info_id']+0;
		$data['is_varify']=1;
		$infomodel=M("Info");
		$info=$infomodel->where("info_id=".$data['info_id'])->find();
		if ($infomodel->where("info_id={$data['info_id']}")->save($data)){
			$newsdata[1]=$info['user_id'];
			$newsdata[2]="系统消息:信息已经审核!";
			$newsdata[3]="您发布的消息:<b>{$info['info_title']}</b>,已经通过审核,将正常显示在首页,感谢您对我们的支持!";
			$newsdata[4]=time();
			sendnews($newsdata);
			$url=U("Info/index");
			Header("Location:$url");
		}else {
			$this->error("审核失败!");
		}
		
	}
	
	//删除信息
	public function delete(){
		$id=$_GET['id']+0;
		$infomodel=M("Info");
		$info=$infomodel->find($id);
		$url=explode(",", $info['info_img']);
		
		$smell_url="./Uploads/".$info['info_miniimg'];
		
		//删除信息并且删除图片,这个类在留言完成之后需要重写
		if ($infomodel->delete($id)){
			foreach ($url as $img_url){
				$img_url="./Uploads/".$img_url;
				unlink($img_url);
			}
			unlink($smell_url);
			$this->success("消息删除成功!");
		}else {
			$this->error("图片删除失败~!");
		}
		
		
		
	}
	
	
	
	

	
	
}
